home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 October: Mac OS SDK / Dev.CD Oct 97 SDK1.toast / Development Kits (Disc 1) / Interfaces&Libraries / Universal / Interfaces / RIncludes / Icons.r < prev    next >
Encoding:
Text File  |  1997-08-12  |  14.0 KB  |  441 lines  |  [TEXT/MPS ]

  1. /*
  2.      File:        Icons.r
  3.  
  4.      Contains:    Icon Utilities Interfaces.
  5.  
  6.      Version:    Technology:    System 8
  7.                  Release:    Universal Interfaces 3.0.1
  8.  
  9.      Copyright:    © 1990-1997 by Apple Computer, Inc. All rights reserved
  10.  
  11.      Bugs?:        Please include the the file and version information (from above) with
  12.                  the problem description.  Developers belonging to one of the Apple
  13.                  developer programs can submit bug reports to:
  14.  
  15.                      devsupport@apple.com
  16.  
  17. */
  18.  
  19. #ifndef __ICONS_R__
  20. #define __ICONS_R__
  21.  
  22. #ifndef __CONDITIONALMACROS_R__
  23. #include "ConditionalMacros.r"
  24. #endif
  25.  
  26. #ifndef __QUICKDRAW_R__
  27. #include "Quickdraw.r"
  28. #endif
  29.  
  30.                                                             /*  The following are icons for which there are both icon suites and SICNs.  */
  31. #define kGenericDocumentIconResource     (-4000)
  32. #define kGenericStationeryIconResource     (-3985)
  33. #define kGenericEditionFileIconResource  (-3989)
  34. #define kGenericApplicationIconResource  (-3996)
  35. #define kGenericDeskAccessoryIconResource  (-3991)
  36. #define kGenericFolderIconResource         (-3999)
  37. #define kPrivateFolderIconResource         (-3994)
  38. #define kFloppyIconResource             (-3998)
  39. #define kTrashIconResource                 (-3993)
  40. #define kGenericRAMDiskIconResource     (-3988)
  41. #define kGenericCDROMIconResource         (-3987)                /*  The following are icons for which there are SICNs only.  */
  42. #define kDesktopIconResource             (-3992)
  43. #define kOpenFolderIconResource         (-3997)
  44. #define kGenericHardDiskIconResource     (-3995)
  45. #define kGenericFileServerIconResource     (-3972)
  46. #define kGenericSuitcaseIconResource     (-3970)
  47. #define kGenericMoverObjectIconResource  (-3969)            /*  The following are icons for which there are icon suites only.  */
  48. #define kGenericPreferencesIconResource  (-3971)
  49. #define kGenericQueryDocumentIconResource  (-16506)
  50. #define kGenericExtensionIconResource     (-16415)
  51. #define kSystemFolderIconResource         (-3983)
  52. #define kAppleMenuFolderIconResource     (-3982)
  53.  
  54.                                                             /*  Obsolete. Use named constants defined above.  */
  55. #define genericDocumentIconResource     (-4000)
  56. #define genericStationeryIconResource     (-3985)
  57. #define genericEditionFileIconResource     (-3989)
  58. #define genericApplicationIconResource     (-3996)
  59. #define genericDeskAccessoryIconResource  (-3991)
  60. #define genericFolderIconResource         (-3999)
  61. #define privateFolderIconResource         (-3994)
  62. #define floppyIconResource                 (-3998)
  63. #define trashIconResource                 (-3994)
  64. #define genericRAMDiskIconResource         (-3988)
  65. #define genericCDROMIconResource         (-3987)
  66. #define desktopIconResource             (-3992)
  67. #define openFolderIconResource             (-3997)
  68. #define genericHardDiskIconResource     (-3995)
  69. #define genericFileServerIconResource     (-3972)
  70. #define genericSuitcaseIconResource     (-3970)
  71. #define genericMoverObjectIconResource     (-3969)
  72. #define genericPreferencesIconResource     (-3971)
  73. #define genericQueryDocumentIconResource  (-16506)
  74. #define genericExtensionIconResource     (-16415)
  75. #define systemFolderIconResource         (-3983)
  76. #define appleMenuFolderIconResource     (-3982)
  77.  
  78. #define kStartupFolderIconResource         (-3981)
  79. #define kOwnedFolderIconResource         (-3980)
  80. #define kDropFolderIconResource         (-3979)
  81. #define kSharedFolderIconResource         (-3978)
  82. #define kMountedFolderIconResource         (-3977)
  83. #define kControlPanelFolderIconResource  (-3976)
  84. #define kPrintMonitorFolderIconResource  (-3975)
  85. #define kPreferencesFolderIconResource     (-3974)
  86. #define kExtensionsFolderIconResource     (-3973)
  87. #define kFontsFolderIconResource         (-3968)
  88. #define kFullTrashIconResource             (-3984)
  89.  
  90.                                                             /*  Obsolete. Use named constants defined above.  */
  91. #define startupFolderIconResource         (-3981)
  92. #define ownedFolderIconResource         (-3980)
  93. #define dropFolderIconResource             (-3979)
  94. #define sharedFolderIconResource         (-3978)
  95. #define mountedFolderIconResource         (-3977)
  96. #define controlPanelFolderIconResource     (-3976)
  97. #define printMonitorFolderIconResource     (-3975)
  98. #define preferencesFolderIconResource     (-3974)
  99. #define extensionsFolderIconResource     (-3973)
  100. #define fontsFolderIconResource         (-3968)
  101. #define fullTrashIconResource             (-3984)
  102.  
  103. #define kLarge1BitMask                     'ICN#'
  104. #define kLarge4BitData                     'icl4'
  105. #define kLarge8BitData                     'icl8'
  106. #define kSmall1BitMask                     'ics#'
  107. #define kSmall4BitData                     'ics4'
  108. #define kSmall8BitData                     'ics8'
  109. #define kMini1BitMask                     'icm#'
  110. #define kMini4BitData                     'icm4'
  111. #define kMini8BitData                     'icm8'
  112.  
  113.                                                             /*  Obsolete. Use names defined above.  */
  114. #define large1BitMask                     'ICN#'
  115. #define large4BitData                     'icl4'
  116. #define large8BitData                     'icl8'
  117. #define small1BitMask                     'ics#'
  118. #define small4BitData                     'ics4'
  119. #define small8BitData                     'ics8'
  120. #define mini1BitMask                     'icm#'
  121. #define mini4BitData                     'icm4'
  122. #define mini8BitData                     'icm8'
  123.  
  124. #define kAlignNone                         0x00
  125. #define kAlignVerticalCenter             0x01
  126. #define kAlignTop                         0x02
  127. #define kAlignBottom                     0x03
  128. #define kAlignHorizontalCenter             0x04
  129. #define kAlignAbsoluteCenter             0x05
  130. #define kAlignCenterTop                 0x06
  131. #define kAlignCenterBottom                 0x07
  132. #define kAlignLeft                         0x08
  133. #define kAlignCenterLeft                 0x09
  134. #define kAlignTopLeft                     0x0A
  135. #define kAlignBottomLeft                 0x0B
  136. #define kAlignRight                     0x0C
  137. #define kAlignCenterRight                 0x0D
  138. #define kAlignTopRight                     0x0E
  139. #define kAlignBottomRight                 0x0F
  140.  
  141.                                                             /*  Obsolete. Use names defined above.  */
  142. #define atNone                             0x00
  143. #define atVerticalCenter                 0x01
  144. #define atTop                             0x02
  145. #define atBottom                         0x03
  146. #define atHorizontalCenter                 0x04
  147. #define atAbsoluteCenter                 0x05
  148. #define atCenterTop                     0x06
  149. #define atCenterBottom                     0x07
  150. #define atLeft                             0x08
  151. #define atCenterLeft                     0x09
  152. #define atTopLeft                         0x0A
  153. #define atBottomLeft                     0x0B
  154. #define atRight                         0x0C
  155. #define atCenterRight                     0x0D
  156. #define atTopRight                         0x0E
  157. #define atBottomRight                     0x0F
  158.  
  159. #define kTransformNone                     0x00
  160. #define kTransformDisabled                 0x01
  161. #define kTransformOffline                 0x02
  162. #define kTransformOpen                     0x03
  163. #define kTransformLabel1                 0x0100
  164. #define kTransformLabel2                 0x0200
  165. #define kTransformLabel3                 0x0300
  166. #define kTransformLabel4                 0x0400
  167. #define kTransformLabel5                 0x0500
  168. #define kTransformLabel6                 0x0600
  169. #define kTransformLabel7                 0x0700
  170. #define kTransformSelected                 0x4000
  171. #define kTransformSelectedDisabled         0x4001
  172. #define kTransformSelectedOffline         0x4002
  173. #define kTransformSelectedOpen             0x4003
  174.  
  175.                                                             /*  Obsolete. Use names defined above.  */
  176. #define ttNone                             0x00
  177. #define ttDisabled                         0x01
  178. #define ttOffline                         0x02
  179. #define ttOpen                             0x03
  180. #define ttLabel1                         0x0100
  181. #define ttLabel2                         0x0200
  182. #define ttLabel3                         0x0300
  183. #define ttLabel4                         0x0400
  184. #define ttLabel5                         0x0500
  185. #define ttLabel6                         0x0600
  186. #define ttLabel7                         0x0700
  187. #define ttSelected                         0x4000
  188. #define ttSelectedDisabled                 0x4001
  189. #define ttSelectedOffline                 0x4002
  190. #define ttSelectedOpen                     0x4003
  191.  
  192. #define kSelectorLarge1Bit                 0x00000001
  193. #define kSelectorLarge4Bit                 0x00000002
  194. #define kSelectorLarge8Bit                 0x00000004
  195. #define kSelectorSmall1Bit                 0x00000100
  196. #define kSelectorSmall4Bit                 0x00000200
  197. #define kSelectorSmall8Bit                 0x00000400
  198. #define kSelectorMini1Bit                 0x00010000
  199. #define kSelectorMini4Bit                 0x00020000
  200. #define kSelectorMini8Bit                 0x00040000
  201. #define kSelectorAllLargeData             0x000000FF
  202. #define kSelectorAllSmallData             0x0000FF00
  203. #define kSelectorAllMiniData             0x00FF0000
  204. #define kSelectorAll1BitData             0x00010101
  205. #define kSelectorAll4BitData             0x00020202
  206. #define kSelectorAll8BitData             0x00040404
  207. #define kSelectorAllAvailableData         0xFFFFFFFF
  208.  
  209.                                                             /*  Obsolete. Use names defined above.  */
  210. #define svLarge1Bit                     0x00000001
  211. #define svLarge4Bit                     0x00000002
  212. #define svLarge8Bit                     0x00000004
  213. #define svSmall1Bit                     0x00000100
  214. #define svSmall4Bit                     0x00000200
  215. #define svSmall8Bit                     0x00000400
  216. #define svMini1Bit                         0x00010000
  217. #define svMini4Bit                         0x00020000
  218. #define svMini8Bit                         0x00040000
  219. #define svAllLargeData                     0x000000FF
  220. #define svAllSmallData                     0x0000FF00
  221. #define svAllMiniData                     0x00FF0000
  222. #define svAll1BitData                     0x00010101
  223. #define svAll4BitData                     0x00020202
  224. #define svAll8BitData                     0x00040404
  225. #define svAllAvailableData                 0xFFFFFFFF
  226.  
  227.  
  228. /*-----------------------------------cicn • Color Icon -------------------------------------------*/
  229. /*
  230.     cicn_RezTemplateVersion:
  231.         0 - original 
  232.         1 - auto calculate much of internal data                 <-- default
  233. */
  234. #ifndef cicn_RezTemplateVersion
  235.     #ifdef oldTemp                            /* grandfather in use of “oldTemp” */
  236.         #define cicn_RezTemplateVersion 0
  237.     #else
  238.         #define cicn_RezTemplateVersion 1
  239.     #endif
  240. #endif
  241.  
  242.  
  243. type 'cicn' {
  244.         /* IconPMap (pixMap) record */
  245.         fill long;                                                /* Base address            */
  246.         unsigned bitstring[1] = 1;                                /* New pixMap flag        */
  247.         unsigned bitstring[2] = 0;                                /* Must be 0            */
  248. #if cicn_RezTemplateVersion == 0
  249.     pMapRowBytes:
  250.         unsigned bitstring[13];                                    /* Offset to next row    */
  251.     Bounds:
  252.         rect;                                                    /* Bitmap bounds        */
  253.         integer;                                                /* pixMap vers number    */
  254.         integer    unpacked;                                        /* Packing format        */
  255.         unsigned longint;                                        /* Size of pixel data    */
  256.         unsigned hex longint;                                    /* h. resolution (ppi) (fixed) */
  257.         unsigned hex longint;                                    /* v. resolution (ppi) (fixed) */
  258.         integer            chunky, chunkyPlanar, planar;            /* Pixel storage format    */
  259.         integer;                                                /* # bits in pixel        */
  260.         integer;                                                /* # components in pixel*/
  261.         integer;                                                /* # bits per field        */
  262.         unsigned longint;                                        /* Offset to next plane    */
  263.         unsigned longint;                                        /* Offset to color table*/
  264.         fill long;                                                /* Reserved                */
  265.  
  266.         /* IconMask (bitMap) record */
  267.         fill long;                                                /* Base address            */
  268.     maskRowBytes:
  269.         integer;                                                /* Row bytes            */
  270.         rect;                                                    /* Bitmap bounds        */
  271.  
  272.  
  273.         /* IconBMap (bitMap) record */
  274.         fill long;                                                /* Base address            */
  275.     iconBMapRowBytes:
  276.         integer;                                                /* Row bytes            */
  277.         rect;                                                    /* Bitmap bounds        */
  278.  
  279.         fill long;                                                /* Handle placeholder    */
  280.  
  281.         /* Mask data */
  282.         hex string [$$Word(maskRowBytes) * PIXMAPHEIGHT];
  283.  
  284.         /* BitMap data */
  285.         hex string [$$Word(iconBMapRowBytes) * PIXMAPHEIGHT];
  286.  
  287.         /* Color Table */
  288.         unsigned hex longint;                                    /* ctSeed                */
  289.         integer;                                                /* ctFlags                */
  290.         integer = $$Countof(ColorSpec) - 1;                        /* ctSize                */
  291.         wide array ColorSpec {
  292.                 integer;                                        /* value                */
  293.                 unsigned integer;                                /* RGB:    red                */
  294.                 unsigned integer;                                /*        green            */
  295.                 unsigned integer;                                /*        blue            */
  296.         };
  297.  
  298.         /* PixelMap data */
  299.         hex string [$$BitField(pMapRowBytes, 0, 13) * PIXMAPHEIGHT];
  300.  
  301.  
  302. #else
  303.     pMapRowBytes:
  304.         unsigned bitstring[13] k32x32x4 = 16;                    /* Offset to next row    */
  305.     Bounds:    
  306.         rect;                                                    /* Bitmap bounds        */
  307.         integer = 0;                                            /* pixMap vers number    */
  308.         integer = 0;                                            /* Packing format        */
  309.         fill long;                                                /* Size of pixel data    */
  310.         unsigned hex longint = $00480000;                        /* h. resolution (ppi)  */
  311.         unsigned hex longint = $00480000;                        /* v. resolution (ppi)  */
  312.         integer = 0 /* chunky */;                                /* Pixel storage format    */
  313.     PixelSize:
  314.         integer;                                                /* # bits in pixel        */
  315.         integer = 1;                                            /* # components in pixel*/
  316.         integer = $$Word(PixelSize);                            /* # bits per field        */
  317.         fill long;
  318.         fill long;
  319.         fill long;
  320.  
  321.         /* IconMask (bitMap) record */
  322.         fill long;                                                /* Base address            */
  323.         integer = BitMapRowBytes;                                /* Row bytes            */
  324.         PixMapBounds;                                            /* Bitmap bounds        */
  325.  
  326.         /* IconBMap (bitMap) record */
  327.         fill long;                                                /* Base address            */
  328.         integer = BitMapRowBytes;                                /* Row bytes            */
  329.         PixMapBounds;                                            /* Bitmap bounds        */
  330.  
  331.         fill long;                                                /* Handle placeholder    */
  332.  
  333.         /* Mask data */
  334.         hex string [BitMapRowBytes * PixMapHeight];
  335.  
  336.         /* BitMap data */
  337.         hex string [BitMapRowBytes * PixMapHeight];
  338.  
  339.     ColorTable:
  340.         unsigned hex longint = 0;                                /* ctSeed                */
  341.         integer = 0;                                            /* ctFlags                */
  342.         integer = $$Countof(ColorSpec) - 1;                        /* ctSize                */
  343.         wide array ColorSpec {
  344.                 integer = $$ArrayIndex(ColorSpec) - 1;            /* value                */
  345.                 unsigned integer;                                /* RGB:    red                */
  346.                 unsigned integer;                                /*        green            */
  347.                 unsigned integer;                                /*        blue            */
  348.         };
  349.  
  350.     PixelData:
  351.         hex string [PixMapRowBytes * PixMapHeight];                /* more of the pixmap    */
  352. #endif
  353. };
  354.  
  355.  
  356. /*----------------------------ICON • Icon-----------------------------------------------*/
  357. type 'ICON' {
  358.         hex string[128];                                        /* Icon data            */
  359. };
  360.  
  361.  
  362. /*----------------------------ICN# • Icon List------------------------------------------*/
  363. type 'ICN#' {
  364.         array {
  365.                 hex string[128];                                /* Icon data            */
  366.         };
  367. };
  368.  
  369.  
  370. /*----------------------------SICN • Small Icon-----------------------------------------*/
  371. type 'SICN' {
  372.         array {
  373.                 hex string[32];                                 /* SICN data            */
  374.         };
  375. };
  376.  
  377.  
  378. /*--------------------------ics# • small icons with masks-------------------------------*/
  379. type 'ics#' {
  380.     array [2] {
  381.         hex string[32];
  382.     };
  383. };
  384.  
  385.  
  386. /*--------------------------icm# • mini icons with masks--------------------------------*/
  387. type 'icm#' {
  388.     array [2] {
  389.         hex string[24];
  390.     };
  391. };
  392.  
  393.  
  394. /*--------------------------icm8 • 8-bit mini icon no mask------------------------------*/
  395. type 'icm8' {
  396.     hex string[192];
  397. };
  398.  
  399.  
  400. /*--------------------------icm4 • 4-bit mini icon no mask------------------------------*/
  401. type 'icm4' {
  402.     hex string[96];
  403. };
  404.  
  405.  
  406. /*--------------------------icl8 • 8-bit large icon no mask-----------------------------*/
  407. type 'icl8' {
  408.     hex string[1024];
  409. };
  410.  
  411.  
  412. /*--------------------------icl4 • 4-bit large icon no mask-----------------------------*/
  413. type 'icl4' {
  414.     hex string[512];
  415. };
  416.  
  417.  
  418. /*--------------------------ics8 • 8-bit small icon no mask-----------------------------*/
  419. type 'ics8' {
  420.     hex string[256];
  421. };
  422.  
  423.  
  424. /*--------------------------ics4 • 4-bit small icon no mask-----------------------------*/
  425. type 'ics4' {
  426.     hex string[128];
  427. };
  428.  
  429.  
  430. /*-------------------------------• Keyboard Icons---------------------------------------*/
  431. type 'KCN#' as 'ICN#';                        
  432. type 'kcs#' as 'ics#';                                /* Keyboard small icon                            
  433. type 'kcl8' as 'icl8';                                /* Keyboard 8-bit color icon */
  434. type 'kcl4' as 'icl4';                                /* Keyboard 4-bit color icon */
  435. type 'kcs8' as 'ics8';                                /* Keyboard 8-bit small color icon */
  436. type 'kcs4' as 'ics4';                                /* Keyboard 4-bit small color icon */
  437.  
  438.  
  439. #endif /* __ICONS_R__ */
  440.  
  441.